package vcp.client.interfaces;

import org.joda.time.DateTime;

import vcp.enums.Screen;

/**
 * 
 * @author VCP team
 *         <p>
 *         handles all types of notifications
 *         </p>
 * 
 * @see Screen
 * @see DateTime
 */
public interface INotify extends IMessage
{
	/** load new MVC by the screen type **/
	void loadMVC ( Screen newScreen );

	/**
	 * <p>
	 * load new MVC with data by new screen type with the object data that
	 * received
	 * </p>
	 * 
	 * @param newScreen
	 * @param dataObject
	 */
	void loadMVCWithData ( Screen newScreen, Object dataObject );

	/** notifies controller to start loading spiral **/
	void loadingStart ();

	/** notifies controller to stop loading spiral **/
	void loadingStop ();

	/**
	 * notifies when client time has changes
	 * 
	 * @param currentTime
	 */
	void onTimeChange ( DateTime currentTime );
}
